// JavaScript Document
powerhua.table_list = {};

/**
* ===================================
* headTableId  // 表格头的ID号
* bodyTableId // 表格内容的ID号
* bodyTableData // 表内容数据
* ===================================
**/
powerhua.table_list.createListTable = function(
    headTableId, bodyTableId, xmlData) {
    
    isDebug = false;
    
    /*
    * 检查输入的参数
    */
    if(xmlData == null) {
        alert("数据为空，请检查！");
        return false;
    }

    debug('格式化数据');
    var xmlDoc = parseXML(xmlData);
    var xmlTypes = xmlDoc.selectNodes("//list-table/body/types/type");

    /*
    * ===================
    * 标题表
    * ===================
    */
    debug('生成标题');
    // 获取标题表格
    var titleTable = document.getElementById(headTableId);
    // 先清除旧的数据
    debug('先清除旧的数据');
    titleTable.removeChild(titleTable.getElementsByTagName("tbody")[0]);
    // 创建标题表格内容
    debug('创建标题表格内容');
    var titleTableBody = document.createElement("tbody");
    // 创建行
    debug('创建行');
    var titleTableRow = document.createElement("tr");
    var xmlColNodes = xmlDoc.selectNodes("//list-table/head/data/col");
    debug('列数：' + xmlColNodes.length);
    for (var i = 0; i < xmlColNodes.length; i++) {
        var xmlNodeHeadCol = xmlColNodes[i];
        
        // 创建单元格
        debug('创建单元格');
        var titleTableCell = powerhua.table_list.genHeadColContent(
            xmlNodeHeadCol);
        
        // 将单元格加到行里面
        debug('将单元格加到行里面');
        titleTableRow.appendChild(titleTableCell);
    }
    // 将行加到标题表格内容中
    debug('将行加到标题表格内容中');
    titleTableBody.appendChild(titleTableRow);
    // 将标题表格内容加到标题表格中
    debug('将标题表格内容加到标题表格中');
    titleTable.appendChild(titleTableBody);

    /*
    * ===================
    * 内容表
    * ===================
    */
    debug('生成表格内容');
    // 获取内容表
    var contentTable = document.getElementById(bodyTableId);
    // 先清除旧的数据
    debug('先清除旧的数据');
    contentTable.removeChild(contentTable.getElementsByTagName("tbody")[0]);
    // 创建标题表格内容
    debug('创建表格内容体');
    isDebug = true;
    var contentTableBody = document.createElement("tbody");
    var xmlNodeBodyRows = xmlDoc.selectNodes("//list-table/body/data/row");
    debug('循环' + xmlNodeBodyRows.length);
    for(var i = 0; i < xmlNodeBodyRows.length; i++) {
        // 行节点
        debug('行节点');
        var xmlNodeBodyRow = xmlNodeBodyRows[i];
        // 创建行
        var contentTableRow = document.createElement("tr");
        debug('循环' + xmlColNodes.length);
        for(var j = 0; j < xmlColNodes.length; j++) {
            // 列节点
            var xmlNodeHeadCol =  xmlColNodes[j];
            var xmlNodeBodyCol = xmlNodeBodyRow.getElementsByTagName("col")[j];
            
            // 创建单元格
            var contentTableCell = powerhua.table_list.genBodyColContent(
                xmlTypes, xmlNodeHeadCol, xmlNodeBodyCol);;
            
            // 将单元格加到行里面
            contentTableRow.appendChild(contentTableCell);
        }
        // 将行加到内容表格内容中
        contentTableBody.appendChild(contentTableRow);
    }
    // 将内容表格内容加到内容表格中
    contentTable.appendChild(contentTableBody);
    
    debug('创建表格结束');
}

/**
* ===================================
* 创建列表头单元格
* ===================================
**/
powerhua.table_list.genHeadColContent = function(
    xmlNodeHeadCol) {
    var headTableCell = document.createElement("td");
    // 单元格的样式
    //headTableCell.setAttribute("class", tableTitleStyle);
    //headTableCell.setAttribute("className", tableTitleStyle);
    // 单元格的宽度
    debug('单元格的宽度');
    var colWidth = xmlNodeHeadCol.getAttribute("width");
    if(colWidth != '0') {
        headTableCell.setAttribute("width", colWidth);
    }
    // 单元格里面的内容
    debug('单元格里面的内容');
    var colValue = getXMLNodeValue(xmlNodeHeadCol);
    if(colValue == "") {
        debug('单元格里面的内容为空');
        colValue = "&nbsp;";
        headTableCell.innerHTML = colValue;
    } 
    else {
        debug('单元格里面的内容不为空');
        headTableCell.appendChild(document.createTextNode(colValue));
    }
    
    // 返回
    return headTableCell;
}

/**
* ===================================
* 创建列表内容单元格
* ===================================
**/
powerhua.table_list.genBodyColContent = function(
    xmlTypes, xmlNodeHeadCol, xmlNodeBodyCol) {

    var contentTableCell = document.createElement("td");
    // 单元格的样式
    //contentTableCell.setAttribute("class", tableContentStyle);
    //contentTableCell.setAttribute("className", tableContentStyle);
    // 单元格的宽度，只在第一行的时候进行设置
    var colWidth = xmlNodeHeadCol.getAttribute("width");
    alert(colWidth);
    if(colWidth != '') {
        contentTableCell.setAttribute("width", colWidth);
    }

    var isFinish = false;
    var nodeType = xmlNodeBodyCol.getAttribute("type");
    for(var i = 0; i < xmlTypes.length; i++) {
        var xmlType = xmlTypes[i];
        if(xmlType.getAttribute("name") == nodeType) {
            if(xmlType.getAttribute("name") == "image-switch") {
                var nodeValue = xmlNodeBodyCol.nodeValue;
                var obj = powerhua.table_list.creatImageSwitch(
                    xmlType, nodeValue);
                contentTableCell.appendChild(obj);
                return contentTableCell;
            }
        }
    }

    var xmlNodeBodyColText = getXMLNodeValue(xmlNodeBodyCol);
    if(xmlNodeBodyColText == "") {
        xmlNodeBodyColText = "&nbsp;";
        contentTableCell.innerHTML = xmlNodeBodyColText;
    } 
    else {
        var textNode = document.createTextNode(xmlNodeBodyColText);
        contentTableCell.appendChild(textNode);
    }
    
    return contentTableCell;
}

/**
* ===================================
* 生成 checkbox
* ===================================
**/
powerhua.table_list.createCheckboxObj = function(
    checkboxName, checkboxValue) {
    var checkboxObj = document.createElement("input");    
    checkboxObj.setAttribute("type", "checkbox");
    checkboxObj.setAttribute("name", checkboxName);
    checkboxObj.setAttribute("value", checkboxValue);
    return checkboxObj;
}

/**
* ===================================
* 生成 image switch
* ===================================
**/
powerhua.table_list.creatImageSwitch = function(
    xmlNodeType, value) {
    var imgObj = document.createElement("img");
    var xmlNodeImgs = xmlNodeType.getElementsByTagName("img");
    var srcOk = false;
    for(var i = 0; i < xmlNodeImgs.length; i++) {
        var xmlNodeImg = xmlNodeImgs[i];
        if(xmlNodeImg.nodeValue == value) {
            imgObj.setAttribute("src", xmlNodeImg.getAttribute("src"));
            srcOk = true;
        }
    }
    if(!srcOk) {
        imgObj.setAttribute("width", "1");
        imgObj.setAttribute("height", "1");
    }
    return imgObj;
}